package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class PruebasDAOS7 {
	public static void main(String[] args) {

		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// CLIENTERFC
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<CLIENTERFC>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			ClienteRfcDAO clienteRfcDAO = fabricaMySQL.getClienteRfcDAO();
			ClienteRfcTO clienteRfcTO = new ClienteRfcTO(0,2,3,true);

			// insert
			if (clienteRfcDAO.insertClienteRfc(clienteRfcTO)) {
				clienteRfcDAO.insertClienteRfc(clienteRfcTO);
				System.out.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// borra
			resultado = clienteRfcDAO.desActivaClienteRfc(5);
			if (resultado == 1)
				System.out.println(">>>>>>>>>>>>>>>>>>>>>desactivado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en el desactivado");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion al desactivar");

			// actualiza
			clienteRfcTO.setIdClienteRfc(6);
			clienteRfcTO.setIdCliente(5);

			resultado = clienteRfcDAO.updateClienteRfc(clienteRfcTO);
			if (resultado == 1)
				System.out.println(">>>>>>>>>>>>>>>>>>> Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			clienteRfcTO = clienteRfcDAO.findClienteRfcById(1);
			if (clienteRfcTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTERFC");
				ImprimirTO.Imprime(clienteRfcTO);
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				

			} else {
				System.out.println("Falla en la seleccion");
			}
			// busca
			System.out.println("--------------------  BUSQUEDA POR IDCLIENTE IDRFC");
			clienteRfcTO = clienteRfcDAO.findClienteRfcByIdClienteIdRfc(1,1);
			if (clienteRfcTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTERFC");
				ImprimirTO.Imprime(clienteRfcTO);
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				

			} else {
				System.out.println("Falla en la seleccion");
			}
			//busqueda multiple
			System.out.println("**++++++++++++++++++++++ SELECT CLIENTERFC +**");
			java.util.Collection<ClienteRfcTO> listClienteRfcTO = clienteRfcDAO
					.selectClienteRfc();
			for (int i = 0; i < listClienteRfcTO.size(); i++) {
				clienteRfcTO = ((ArrayList<ClienteRfcTO>) listClienteRfcTO)
						.get(i);
				System.out.println("CLIENTERFC");
				ImprimirTO.Imprime(clienteRfcTO);
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				
			}
			
			//Busqueda multiple
			System.out.println("**+++++++++++++++++ SELECT CLIENTERFC ACTIVO+**");
			listClienteRfcTO = clienteRfcDAO.selectClienteRfcsActivo();
			for (int i = 0; i < listClienteRfcTO.size(); i++) {
				clienteRfcTO = ((ArrayList<ClienteRfcTO>) listClienteRfcTO)
						.get(i);
				System.out.println("CLIENTERFC");
				ImprimirTO.Imprime(clienteRfcTO);
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				
			}
			
			// Busca
			System.out.println("------------------- BUSQUEDA POR ID CLIENTE");
			clienteRfcTO = clienteRfcDAO.selectClienteRfcByIdCliente(2);
			if (clienteRfcTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTERFC");

				for(int x=0;x<clienteRfcTO.getListIdClienteRfc().length;x++)
				{
					System.out.println("IDCLIENTERFC");
					System.out.println(clienteRfcTO.getListIdClienteRfc()[x]);
				}
				for(int x=0;x<clienteRfcTO.getListActivos().length;x++)
				{
					System.out.println("ACTIVOS");
					System.out.println(clienteRfcTO.getListActivos()[x]);
				}
				
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			// Busca
			System.out.println("------------------------ BUSQUEDA POR ID RFC");
			clienteRfcTO = clienteRfcDAO.selectClienteRfcByIdRfc(3);
			if (clienteRfcTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTERFC");
				
				for(int x=0;x<clienteRfcTO.getListIdClienteRfc().length;x++)
				{
					System.out.println("IDCLIENTERFC");
					System.out.println(clienteRfcTO.getListIdClienteRfc()[x]);
				}
				for(int x=0;x<clienteRfcTO.getListActivos().length;x++)
				{
					System.out.println("ACTIVOS");
					System.out.println(clienteRfcTO.getListActivos()[x]);
				}
				
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			// Busca
			System.out.println("--------------------- BUSQUEDA POR ID CLIENTE ACTIVO");
			clienteRfcTO = clienteRfcDAO.selectClienteRfcActivoByIdCliente(2);
			if (clienteRfcTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("CLIENTERFC");
				
				for(int x=0;x<clienteRfcTO.getListIdClienteRfc().length;x++)
				{
					System.out.println("IDCLIENTERFC");
					System.out.println(clienteRfcTO.getListIdClienteRfc()[x]);
				}
				for(int x=0;x<clienteRfcTO.getListActivos().length;x++)
				{
					System.out.println("ACTIVOS");
					System.out.println(clienteRfcTO.getListActivos()[x]);
				}
				
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				

			} else {
				System.out.println("Falla en la seleccion");
			}
			
			// Busca
			System.out.println("---------------------------- BUSQUEDA POR ID RFC ACTIVO");
			clienteRfcTO = clienteRfcDAO.selectClienteRfcActivoByIdRfc(3);
			if (clienteRfcTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("<<CLIENTERFC>>");
				
				for(int x=0;x<clienteRfcTO.getListIdClienteRfc().length;x++)
				{
					System.out.println("IDCLIENTERFC");
					System.out.println(clienteRfcTO.getListIdClienteRfc()[x]);
				}
				for(int x=0;x<clienteRfcTO.getListActivos().length;x++)
				{
					System.out.println("ACTIVOS");
					System.out.println(clienteRfcTO.getListActivos()[x]);
				}
				
				for(int x=0;x<clienteRfcTO.getClienteTO().length;x++)
				{
					System.out.println("CLIENTE");
					ImprimirTO.Imprime(clienteRfcTO.getClienteTO()[x]);
				}
				for(int x=0;x<clienteRfcTO.getRfcTO().length;x++)
				{
					System.out.println("RFC");
					ImprimirTO.Imprime(clienteRfcTO.getRfcTO()[x]);
				}
				

			} else {
				System.out.println("Falla en la seleccion");
			}
			

		} catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}

}
